package application;

import java.util.ArrayList;

public class SplitTitle {
	/**
	 * @param keyword 用户输入的关键字
	 * @param title 新闻标题
	 * @return 返回的字符串数组链表segment
	 * @author TAO
	 */
	public static ArrayList<String> splitTitle(String keyword,String title) {
    	ArrayList<String> segment = new ArrayList<>();
    	String[] s = new String[title.length()];   //思路: 将title拆分成每个字为一个字符串，将不包含在keyword中且相邻的字合为一个字符串
    	boolean isFirst;
    	for(int i=0;i<title.length();i++) s[i]=title.substring(i, i+1);
    	int index=0;  //连续的不包含于keyword的字段中，第一个字的下标
    	for(int i=1;i<title.length();i++) {
			if(keyword.contains(s[i])==true) continue;
			else {
				index=i;isFirst=true;
				while(index>0&&s[index-1]==null || index>0&&keyword.contains(s[index-1])==false) {  //更新index位置
					isFirst=false;
					index--;
				}
				if(isFirst==true) continue;
				else {
					if(s[index]==null) s[index]=s[i];  //前移填补最前一个为null的字符串
					else s[index]=s[index]+s[i];  //合并与keyword不相关的连续的字
					s[i]=null;  //合并后,后一个字符串设为null
				}
			}
		}
    	for(int i=0;i<title.length();i++) {
    		if(s[i]!=null) segment.add(s[i]);
    	}
    	return segment;
    }
}
